#!/usr/bin/env bash

set -x

# doesn't actually cd to directory, but return absolute path
CUR_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
# cd to directory
cd $CUR_DIR

CONTRIBUTORS_FILE=${CONTRIBUTORS_FILE=$CUR_DIR/StorageSystemContributors.generated.cpp}

# if you don't specify HEAD here, without terminal `git shortlog` would expect input from stdin
git shortlog HEAD --summary | perl -lnE 's/^\s+\d+\s+(.+)/    "$1",/; next unless $1; say $_' > $CONTRIBUTORS_FILE.tmp

# If git history not available - dont make target file
if [ ! -s $CONTRIBUTORS_FILE.tmp ]; then
    echo Empty result of git shortlog
    git status -uno
    exit
fi

echo "// autogenerated by $0"             >  $CONTRIBUTORS_FILE
echo "const char * auto_contributors[] {" >> $CONTRIBUTORS_FILE
cat  $CONTRIBUTORS_FILE.tmp               >> $CONTRIBUTORS_FILE
echo -e "    nullptr};"                   >> $CONTRIBUTORS_FILE

echo "Collected `cat $CONTRIBUTORS_FILE.tmp | wc -l` contributors."
rm $CONTRIBUTORS_FILE.tmp

